1. Technical Field
The present invention relates generally to a Peripheral Component Interconnect (PCI) Express switch and a computer system using the switch and, more particularly, to a PCI Express switch and a computer system using the switch, which enable computers to be mutually connected to each other by expanding a virtual PCI bus within the switch to the outside of the switch, and allow the computers to share an upstream bridge within the switch with each other by enabling the upstream bridge to be virtualized as a device in other computers.
2. Description of the Related Art
Peripheral Component Interconnect (PCI) Express technology is a technology for supporting Input/Output (I/O) interfaces between a Central Processing Unit (CPU) and peripheral devices in computer systems. Initially, PCI Express technology was applied to chip-to-chip interfaces or interfaces using slots.
Recently, in order to expand PCI Express to the outside of computer systems, expansion methods using PCI Express cables or other copper and optical cables have been introduced, and so PCI Express interfaces have been used as expansion interfaces on the outside of the system, as well as the inside of the system.
With the development of this technology, methods of clustering computers using PCI Express buses have been proposed. In this case, there has been introduced a method of implementing some of downstream ports in a switch in the form of Non-Transparent (NT) ports, implementing an interface between the NT ports, accessing the NT ports in a software manner to access another computer, and then accessing memory provided in the other computer.
However, when this scheme is implemented, only the memory of computers mutually connected to NT ports can be accessed, and thus n NT ports are required to communicate with n computers, and the introduction of complicated software is required. Further, in order to communicate with a plurality of computers using a limited number of NT ports, a separate switch device is required. Furthermore, a problem arises in that, as the number of connected NT ports in a separate switch device increases, mapping between the NT ports exhibits a very complicated aspect. That is, since the above problem is present in the method using NT ports, a scheme for solving this problem is required so as to directly access the memory of another computer.
Korean Patent Application Publication No. 10-2009-0117885 (entitled “System, cluster port and method”) discloses technology for enabling mutual connections between a plurality of independent PCI Express hierarchies so that the clusters of the mutually connected PCI Express hierarchies, which can share access to endpoint devices within arbitrary clustered hierarchies, are formed. The invention disclosed in Korean Patent Application Publication No. 10-2009-0117885 includes a plurality of PCI Express hierarchies, each having a related root controller and a related cluster port, and a PCI Express switch connected to the cluster ports of the respective hierarchies, wherein the cluster port of each hierarchy enables a first hierarchy to gain control access to a component within another arbitrary hierarchy of the plurality of hierarchies through the switch.
That is, the invention disclosed in Korean Patent Application Publication No. 10-2009-0117885 has a structure in which cluster ports are set in the switch to cluster the computers, and which remaps PCI hierarchies and accesses remote components. The invention is configured to reconfigure an address map using a separate switch device and then generate a cluster structure. In other words, the invention disclosed in Korean Patent Application Publication No. 10-2009-0117885 sets specific ports called cluster ports from among switch ports, connects the cluster ports through a switch, and remaps the PCI hierarchies, thus requiring a complicated remapping procedure and also requiring a separate switch structure.
An example of configuration and setup of a PCI Express-based single computer system is illustrated in FIG. 1.
Generally, a computer system includes a host processor (CPU) 10, and memory 12 and a Video Graphics Array (VGA) 14 connected to a root complex 16, and these components are then connected to an endpoint 18.
Here, since the PCI bus number of a port within the root complex 16 is 0, the bus number of the VGA 14 directly connected to the root complex 16 is 1, and the bus number of the endpoint 18 connected to another port is 2.
Depending on the specifications of PCI Express, the endpoint 18 has a constraint in that the device number thereof must be 0, and the function number thereof is designated as 0 in the case of a single function according to usage, and thus the ID of the endpoint 18 is B0D0F0. In this state, a method of enabling the computer system to share its own memory 12 with other systems is not implemented. Accordingly, as shown in FIG. 2, switches 20 and 30, each having a single NT port, are introduced so as to share memory, thus enabling the sharing of memory to be implemented. In FIG. 2, parts for connecting the NT switch 20 and the NT switch 30 are just the NT ports. In this case, since only two computers are connected, a direct connection between the NT ports can be made, and then a separate switch is not needed.
However, in order to connect three or more computers, a separate switch (that is, an NT port routing switch 40) for routing between NT ports is required, as shown in FIG. 3. Since the NT ports are recognized as endpoints in respective systems, separate software device drivers are required for respective computers so as to access the NT ports. Further, in order to map a request or response signal, received through each NT port, to the corresponding computer's memory 12, a complicated algorithm is required. Furthermore, since the switch 40 used to perform routing between the NT ports also requires a complicated algorithm for routing, the use of complicated software and hardware is also required.